/*
总时间限制: 1000ms 内存限制: 65536kB
描述
给定2到15个不同的正整数，你的任务是计算这些数里面有多少个数对满足：数对中一个数是另一个数的两倍。

比如给定1 4 3 2 9 7 18 22，得到的答案是3，因为2是1的两倍，4是2个两倍，18是9的两倍。

输入
一行，给出2到15个两两不同且小于100的正整数。最后用0表示输入结束。
输出
一个整数，即有多少个数对满足其中一个数是另一个数的两倍。
样例输入
1 4 3 2 9 7 18 22 0
样例输出
3

AC:
*/
#include <iostream>
#include<algorithm>
using namespace std;
int a[16];

int main()
{
    int x;
    int i,j,k=0,count=0;
    while(cin>>x && x!=0)
    {
        a[k++]=x;
    }
    sort(a,a+k);
    for(i=0; i<k-1; i++)
    {
        for(j=1; j<k; j++)
        {
            if(a[j]/a[i]==2 && a[j]%a[i]==0)
                count++;
        }
    }
    cout<<count<<endl;
    return 0;
}

/*
 思路:
    将输入的数据存入数组中,用两重循环,判断if(a[j]/a[i]==2 && a[j]%a[i]==0),则count++;
    i的范围[0~k-2],j的范围[1~k-1];
*/